
#pragma once

#ifdef __cplusplus

extern "C" {

#endif


#if (!defined(NDEBUG) && defined USE_FULL_ASSERT)

/**
 * @brief  The assert_param macro is used for function's parameters check.
 * @param  expr: If expr is false, it calls assert_failed function
 *         which reports the name of the source file and the source
 *         line number of the call that failed.
 *         If expr is true, it returns no value.
 * @retval None
 */
#define assert_param(expr) ((expr) ? (void)0U : assert_failed((char*)__FILE__, __LINE__))

extern void assert_failed(char* file, uint32_t line);

#else

#define assert_param(expr) ((void)0U)

#endif /* USE_FULL_ASSERT */

#ifdef __cplusplus

}

#endif
